How to Go wrong
Что выдаст этот код?
(третий вариант должен быть
false, false, false
– отредактировать нельзя)Getter’ы и setter’ы не нужны, говорили они. Просто делайте структуры с экспортированными полями, говорили они…
https://go.dev/blog/protobuf-opaque
Protobuf Enterprise Edition какой-то.
С другой стороны, ленивое декодирование и не сделать по-другому.
EDIT: Читая обсуждение на Hacker News, наткнулся на https://connectrpc.com/docs/protocol, и, кажется, это то, что надо: совместимость с gRPC без ужасов gRPC-Web, поддержка стриминга (в отличии от Twirp), простота как цель.
https://go.dev/blog/protobuf-opaque
Protobuf Enterprise Edition какой-то.
С другой стороны, ленивое декодирование и не сделать по-другому.
EDIT: Читая обсуждение на Hacker News, наткнулся на https://connectrpc.com/docs/protocol, и, кажется, это то, что надо: совместимость с gRPC без ужасов gRPC-Web, поддержка стриминга (в отличии от Twirp), простота как цель.
go.dev
Go Protobuf: The new Opaque API - The Go Programming Language
We are adding a new generated code API to Go Protobuf.
How to Go wrong
И новый опрос в этом году: https://survey.alchemer.eu/s3/90751981/Go-2024 Результаты прошлого, если вы пропустили: https://devcrowd.ru/go-2023/
Подвезли результаты: https://devcrowd.ru/go-2024/
Исследование Go-разработчиков, 2024
DevCrowd вместе с Авито провели исследование рынка Go-разработчиков, 2024
А вот и результаты исследования команды Go: https://go.dev/blog/survey2024-h2-results
go.dev
Go Developer Survey 2024 H2 Results - The Go Programming Language
What we learned from our 2024 H2 developer survey
Всех с наступающим или наступившим Новым годом.
Итоги подводить не буду, но поздравлю всех с тем, что один из старейших багов в спеке Go наконец-то закрыли. После релиза 1.24 наконец-то можно будет нормально говорить про слайсы, мапы или каналы без уродливых объяснений «ну, это как ссылки, только ссылок в Go нет».
Итоги подводить не буду, но поздравлю всех с тем, что один из старейших багов в спеке Go наконец-то закрыли. После релиза 1.24 наконец-то можно будет нормально говорить про слайсы, мапы или каналы без уродливых объяснений «ну, это как ссылки, только ссылок в Go нет».
Сходил в гости к @orgprog поговорить про дженерики, итераторы и Go вообще: https://www.youtube.com/watch?v=M5XJ_Ojjm8M
YouTube
Дженерики, горутины и перспективы Go: взгляд изнутри | Алексей Палажченко | #26
В этом выпуске мы поговорили с Алексеем Палажченко об эволюции языка Go и его роли в современном программировании. Разобрали, как Go стал выбором для крупных проектов, включая создание баз данных, и почему он продолжает завоёвывать популярность среди разработчиков.…
Ну всё, дженерики запилили, начали второй подход к обработке ошибок: https://github.com/golang/go/issues/71203
GitHub
proposal: spec: reduce error handling boilerplate using ? · Issue #71203 · golang/go
Proposal Details Background As discussed in the introduction to an earlier, declined, proposal, Go programs have a lot of error checking code. In surveys error handling is listed as the biggest spe...
Что более эффективно с точки зрения потребления памяти: map[int64]struct{} или map[int64]bool?
Anonymous Quiz
75%
map[int64]struct{}
10%
map[int64]bool
15%
¯\_(ツ)_/¯
How to Go wrong
Ну что, поехали! https://blog.ferretdb.io/ferretdb-1-0-ga-opensource-mongodb-alternative/ Плюсаните нас на https://news.ycombinator.com (поищите FerretDB в new) Лайк и ретвит: https://twitter.com/ferret_db Стар и рe🐘 : https://techhub.social/@ferretdb Лайк…
Мы катились к этому больше года, и, наконец, докатились:
* https://blog.ferretdb.io/ferretdb-releases-v2-faster-more-compatible-mongodb-alternative/
* https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/
* https://github.com/microsoft/documentdb
TL;DR Мы работали с Microsoft над open source Azure Cosmos DB for MongoDB (vCore) и затаскиванием его в FerretDB. И заопенсорсили, и затащили!
* https://blog.ferretdb.io/ferretdb-releases-v2-faster-more-compatible-mongodb-alternative/
* https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/
* https://github.com/microsoft/documentdb
TL;DR Мы работали с Microsoft над open source Azure Cosmos DB for MongoDB (vCore) и затаскиванием его в FerretDB. И заопенсорсили, и затащили!
blog.ferretdb.io
FerretDB Releases 2.0: A Faster, More Compatible MongoDB Alternative | FerretDB Blog
We are pleased to announce the first release candidate of FerretDB v2.0, a significant milestone in our objective to provide a high-performance, truly Open Source alternative to MongoDB.
How to Go wrong
Мы катились к этому больше года, и, наконец, докатились: * https://blog.ferretdb.io/ferretdb-releases-v2-faster-more-compatible-mongodb-alternative/ * https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/ * https://github.c…
А теперь мы докатились и до GA релиза:
* https://blog.ferretdb.io/ferretdb-v2-ga-open-source-mongodb-alternative-ready-for-production/
* https://thenewstack.io/ferretdb-2-0-open-source-mongodb-alternative-with-postgresql-power/
–-–
Через пару дней начну опять писать про Go. Не переключайтесь.
* https://blog.ferretdb.io/ferretdb-v2-ga-open-source-mongodb-alternative-ready-for-production/
* https://thenewstack.io/ferretdb-2-0-open-source-mongodb-alternative-with-postgresql-power/
–-–
Через пару дней начну опять писать про Go. Не переключайтесь.
Компилятор TypeScript переписывают на Go. Анонс и видео тут, транскрипт ключевой части на Reddit, а на картинке – ответ Anders’а Hejlsberg’а (создателя TypeScript, C#, Delphi и Turbo Pascal’я). Сам ответ вот тут, но потрясающий UI GitHub’а вам его не только скроет, но и будет скрывать при каждом новом ответе – а ответы там появляются часто, потому что у любителей C# и Rust’а там конкретно подгорает.
Выступал недавно на митапе Armenia PostgreSQL (который и соорганизовывал – никуда не деться от старых привычек) про использование FerretDB (написанного, напомню, на Go с горутинами/потоками) внутри PostgreSQL (написанного на C с форками). Если фразы в скобках не вызвали у вас ужаса, то вы просто не форкали процессы с тредами 🙂
Видео – тут, слайды – тут, реальный код – вот тут.
Видео – тут, слайды – тут, реальный код – вот тут.
YouTube
Alexey Palazhchenko - Using PostgreSQL's Background Worker Processes For Fun and Profit (Meetup #2)
Alexey Palazhchenko presented Using PostgreSQL's Background Worker Processes For Fun and Profit at the inaugural 2025 PostgreSQL Meetup in Yerevan.
Alexey's talk focused on PostgreSQL’s one unique extensibility option: the ability to run any custom code…
Alexey's talk focused on PostgreSQL’s one unique extensibility option: the ability to run any custom code…
Писал-писал большой пост про новый testing.B.Loop и как его никто не понимает, но меня опередили:
* https://go.dev/blog/testing-b-loop
* https://github.com/golang/go/issues/73137
Единственное, что не упомянуто, так это то, что эта оптимизация не покрывает testing.PB.Next. Но это не точно.
* https://go.dev/blog/testing-b-loop
* https://github.com/golang/go/issues/73137
Единственное, что не упомянуто, так это то, что эта оптимизация не покрывает testing.PB.Next. Но это не точно.
go.dev
More predictable benchmarking with testing.B.Loop - The Go Programming Language
Better benchmark looping in Go 1.24.
Будет официальный SDK для Model Context Protocol’а на Go. Когда-нибудь: https://github.com/orgs/modelcontextprotocol/discussions/224#discussioncomment-12730162
Очень надеюсь, что будет лучше, чем существующие, которые как-будто с JS портированы один-в-один.
Очень надеюсь, что будет лучше, чем существующие, которые как-будто с JS портированы один-в-один.
GitHub
Proposal: official support for `modelcontextprotocol/go-sdk` · modelcontextprotocol · Discussion #224
Pre-submission Checklist I have verified this would not be more appropriate as a feature request in a specific repository I have searched existing discussions to avoid duplicates Your Idea There ar...
uber-go/automaxprocs скоро будет не нужен: https://github.com/golang/go/issues/73193
GitHub
proposal: runtime: CPU limit-aware GOMAXPROCS default · Issue #73193 · golang/go
Overview Change the Go runtime on Linux to use CPU cgroup quota limits to set the default value of GOMAXPROCS. This is a concrete proposal for the ideas discussed in #33803. I've included a lot...
Tailscale портировали на Plan 9, попутно пофиксив и Go, и сам Plan 9: https://tailscale.com/blog/plan9-port
Tailscale
Securely connect to anything on the internet with Tailscale. Built on WireGuard®️, Tailscale enables you to make finely configurable connections, secured end-to-end according to zero trust principles, between any resources on any infrastructure.
How to Go wrong
Arenas are dead, long live arenas! * https://github.com/golang/go/discussions/70257 * https://go.googlesource.com/proposal/+/refs/heads/master/design/70257-memory-regions.md#annotated-examples (понемногу возвращаюсь из долгого отпуска)
Если ждать memory regions сил уже нет, то можно и самому memory arenas сделать: https://mcyoung.xyz/2025/04/21/go-arenas/
mcyoung.xyz
Cheating the Reaper in Go · mcyoung
Wired написал про
(TL;DR: ничего не случилось, НО МОЖЕТ)
easyjson
, но есть нюанс: https://www.wired.com/story/easyjson-open-source-vk-ties/(TL;DR: ничего не случилось, НО МОЖЕТ)
WIRED
Security Researchers Warn a Widely Used Open Source Tool Poses a 'Persistent' Risk to the US
The open source software easyjson is used by the US government and American companies. But its ties to Russia’s VK, whose CEO has been sanctioned, have researchers sounding the alarm.
Forwarded from Go Update
😢 Ян Ланс Тейлор покидает Google 😢
После 19 (!!!) лет работы и более 16 лет работы над нашим языком Go, Ян Ланс Тейлор объявил о том, что покидает Google.
В числе его заслуг:
— Работа компилятора Go.
— GCCGO фронтенд который позволяет собирать программы на Go с использованием компилятора GCC.
— Дженерики, которые появились в версии 1.18.
— Поддержка Go во внутренней системе сборки SWIG Google.
— Куча предложений и работ над улучшением языка.
Сам Ян говорит, что очень доволен своей работой. Go развивается и его принятие рынком растет гораздо быстрее чем оригинальная команда могла даже вообразить когда начинала работу над языком. Однако вместе с этим ему видно, что сам Google изменился, язык Go изменился и вообще ландшафт языков программирования изменился с тех пор как он начал эту работу. В течении последнего года он понял, что больше не подходит для работой над Go внутри Google. И пришла пора двигаться дальше.
На некоторое время возьмет перерыв от работы, но надеется, что ему еще удастся поработать над Go в будущем.
П.С. Мужик, конечно, легенда — работает на OSS и GNU проектами с 1990 года. Желаю ему хорошо отдохнуть и продолжать делать крутые вещи.
П.П.С. После ухода Яна и ухода Расса с должности руководителя Go (но не ухода из Google!) из старой гвардии остался только Роберт Гризмер. С одной стороны это хорошо — значит язык не зависит от конкретных людей. С другой есть волнение за будущее языка и то как новые лица справятся с таким наследием. Поживем — увидим!
После 19 (!!!) лет работы и более 16 лет работы над нашим языком Go, Ян Ланс Тейлор объявил о том, что покидает Google.
В числе его заслуг:
— Работа компилятора Go.
— GCCGO фронтенд который позволяет собирать программы на Go с использованием компилятора GCC.
— Дженерики, которые появились в версии 1.18.
— Поддержка Go во внутренней системе сборки SWIG Google.
— Куча предложений и работ над улучшением языка.
Сам Ян говорит, что очень доволен своей работой. Go развивается и его принятие рынком растет гораздо быстрее чем оригинальная команда могла даже вообразить когда начинала работу над языком. Однако вместе с этим ему видно, что сам Google изменился, язык Go изменился и вообще ландшафт языков программирования изменился с тех пор как он начал эту работу. В течении последнего года он понял, что больше не подходит для работой над Go внутри Google. И пришла пора двигаться дальше.
На некоторое время возьмет перерыв от работы, но надеется, что ему еще удастся поработать над Go в будущем.
П.С. Мужик, конечно, легенда — работает на OSS и GNU проектами с 1990 года. Желаю ему хорошо отдохнуть и продолжать делать крутые вещи.
П.П.С. После ухода Яна и ухода Расса с должности руководителя Go (но не ухода из Google!) из старой гвардии остался только Роберт Гризмер. С одной стороны это хорошо — значит язык не зависит от конкретных людей. С другой есть волнение за будущее языка и то как новые лица справятся с таким наследием. Поживем — увидим!